package com.jt.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component  //  @Component 将User 交给spring容器管理
public class User {
//@Autowired //  @Autowired 将接口的实现类自动注入 给User
//@Qualifier("dog") // @Qualifier("cat")注解不能单独使用,必须配合Autowired 使用,根据key进行注入
@Resource(name="cat")  //@Resource : 功能上说:Resource(name="cat") =@Autowired+@Qualifier("dog")
    private Pet pet;//相当于中间商Spring容器,先给User这个人送了一个宠物,
                    // 但是这个宠物又暂时不定,至于这个宠物是猫是狗还未定,还未赋值.
                    //本来应该是 Pet pet = new  (cat/dog/xxx)这样写,但是右边为定制
                    //所以应该写 Pet pet ,然后被privte 修饰  所以写  Private Pet pet.

    public void Say(){  //User 调用宠物的方法
        pet.hello();  // 因为注入的是cat  ,猫cat 则显示"喵喵"
    }
 }
